package com.sxbbc.api.service;

import java.util.Map;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.function.common.RestResponse;
import com.sxbbc.common.core.dto.jz.*;
import com.sxbbc.common.core.entity.jz.OrderMain;
import com.sxbbc.common.core.utils.BasePage;
/**
 * 订单数据显示 业务处理
 * 接口服务类
 * @author xiaoky
 * @date 2019-05-25
 */
public interface IOrderService {
	/**
	 * 处理订单列表数据（商城订单和线下订单）
	 * @param page 分页参数
	 * @param order 订单数据(条件查询)
	 * @return IPage<OrderOtherVo> 订单分页数据
	 */
	IPage<OrderBaseVo> queryOrder(BasePage<OrderMain> page, OrderMain order);

	/**
	 * 查询订单详情数据
	 * @param orderId 订单id
	 * @return com.sxbbc.common.core.dto.jz.OrderDetailVo 订单详情封装实体
	 */
	OrderDetailVo handleQueryOrderDetailById(Integer orderId);

	/***
	 * 查询养鸡物流订单详情数据
	 * @param orderId
	 * @return
	 */
	ChickenLogisticsOrderDetailVo handleGetChickenOrderDetail(Integer orderId);
	/**
	 * 订单逻辑假删除
	 * @param cid 用户id
	 * @param orderCode 订单编号
	 * @return 处理结果
	 */
	RestResponse deleteOrder(Integer cid, String orderCode);

	/**
	 * 取消订单
	 * @param cid 用户id
	 * @param orderCode 订单编号
	 * @return 处理结果
	 */
	RestResponse cancelOrder(Integer cid, String orderCode);

	/**
	 * 订单发货提醒
	 * @param cid 用户id
	 * @param orderCode 订单编号
	 * @return 处理结果
	 */
	RestResponse handleOrderRemind(Integer cid, String orderCode);

	/**
	 * 订单
	 * @param cid 用户id
	 * @param orderCode 订单编号
	 * @return 处理结果
	 */
	RestResponse handleOrderReceive(Integer cid, String orderCode);

	/**
	 * 订单评论接口
	 * @param cid 用户id
	 * @param vo 评论信息
	 * @return 处理结果
	 */
	RestResponse handleOrderEvaluate(Integer cid, OrderEvaluateVo vo);

	/**
	 * 查询团购商品团购信息列表
	 * @param page 分页
	 * @param proCode 商品编号
	 * @return IPage<ProGroupVo> 分页数据
	 */
	IPage<ProGroupVo> queryProGroupList(BasePage<ProGroupVo> page, String proCode);
	
	/**
	 * 通过团购编号查询团购成员信息
	 * @param groupCode 团购编号
	 * @param cid
	 * @return 团购成员封装信息结果集
	 */
	Map<String, Object> queryGroupCusByGroupCode(String groupCode, Integer cid);

	/**
	 * 物流提鸡订单详情
	 * @param id
	 * @return
	 */
	FarmLogisticsOrderDetailVo handleQueryChickenLogisticsOrderDetailById(Integer id);
}
